package net.zoneland.knowledge.model;

import java.util.Date;
import java.util.Optional;

/**
 * 收藏.
 * @author bcc
 */
public class Favorite {
    /**
     * 主键.
     */
    private String id;
    /**
     * 题库id.
     */
    private String esQuestionId;
    /**
     * 创建人uid.
     */
    private String creatorUid;
    /**
     * 创建人.
     */
    private String creatorName;
    /**
     * 创建时间.
     */
    private Date createTime;
    /**
     * 更新时间.
     */
    private Date updateTime;
    /**
     * 生效.
     */
    private boolean enabled;
    /**
     * 分类.
     */
    private String category;

    /**
     * 收藏内容标题分类
     */
    private String titleType;

    /**
     * 获取 字段值.
     * @return 字段值
     */
    public String getId() {
        return id;
    }
    /**
     * 设置 字段值.
     * @param id 字段值
     */
    public void setId(final String id) {
        this.id = id == null ? null : id.trim();
    }
    /**
     * 获取 字段值.
     * @return 字段值
     */
    public String getEsQuestionId() {
        return esQuestionId;
    }
    /**
     * 设置 字段值.
     * @param esQuestionId 字段值
     */
    public void setEsQuestionId(final String esQuestionId) {
        this.esQuestionId = esQuestionId == null ? null : esQuestionId.trim();
    }
    /**
     * 获取 字段值.
     * @return 字段值
     */
    public String getCreatorUid() {
        return creatorUid;
    }
    /**
     * 设置 字段值.
     * @param creatorUid 字段值
     */
    public void setCreatorUid(final String creatorUid) {
        this.creatorUid = creatorUid == null ? null : creatorUid.trim();
    }
    /**
     * 获取 字段值.
     * @return 字段值
     */
    public String getCreatorName() {
        return creatorName;
    }
    /**
     * 设置 字段值.
     * @param creatorName 字段值
     */
    public void setCreatorName(final String creatorName) {
        this.creatorName = creatorName == null ? null : creatorName.trim();
    }
    /**
     * 获取 字段值.
     * @return 字段值
     */
    public Date getCreateTime() {
        return Optional.ofNullable(createTime).map(it -> (Date) it.clone()).orElse(null);
    }
    /**
     * 设置 字段值.
     * @param createTime 字段值
     */
    public void setCreateTime(final Date createTime) {
        this.createTime = Optional.ofNullable(createTime).map(it -> (Date) it.clone()).orElse(null);
    }
    /**
     * 获取 字段值.
     * @return 字段值
     */
    public Date getUpdateTime() {
        return Optional.ofNullable(updateTime).map(it -> (Date) it.clone()).orElse(null);
    }
    /**
     * 设置 字段值.
     * @param updateTime 字段值
     */
    public void setUpdateTime(final Date updateTime) {
        this.updateTime = Optional.ofNullable(updateTime).map(it -> (Date) it.clone()).orElse(null);
    }
    /**
     * 获取 字段值.
     * @return 字段值
     */
    public boolean isEnabled() {
        return enabled;
    }
    /**
     * 设置 字段值.
     * @param enabled 字段值
     */
    public void setEnabled(final boolean enabled) {
        this.enabled = enabled;
    }
    /**
     * 获取 字段值.
     * @return 字段值
     */
    public String getCategory() {
        return category;
    }
    /**
     * 设置 字段值.
     * @param category 字段值
     */
    public void setCategory(final String category) {
        this.category = category == null ? null : category.trim();
    }

    /**
     * 获取 字段值.
     * @return 字段值
     */
    public String getTitleType() {
        return titleType;
    }

    /**
     * 设置 字段值.
     * @param titleType 字段值
     */
    public void setTitleType(String titleType) {
        this.titleType = titleType;
    }
}
